package store

import (
	"editor/utils"
	"log"
	"sync"
)

var (
	initOne sync.Once
)

func init() {
	Init()
}

func Init() {
	initOne.Do(func() {
		ctx := utils.CreateTestCtx()
		// 配置文件解析
		if err := confInit(ctx); err != nil {
			log.Panicf("init failed: ParseConfig error:%s\n", err.Error())
		}

		// 日志初始化
		if err := logInit(ctx); err != nil {
			log.Panicf("init failed: ParseConfig error:%s\n", err.Error())
		}

		// bd初始化
		if err := dbInit(ctx); err != nil {
			log.Panicf("init failed: InitMDFileInfoMapList error:%s\n", err.Error())
		}

		// 配置文件改动监控
		go func() {
			if err := WatchConf(); err != nil {
				log.Panicf("init failed: WatchConfFailed error:%s\n", err.Error())
			}
		}()

		return
	})
}
